package com.myopen.handler;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.jfinal.handler.Handler;
import com.myopen.config.ConstConfig;

public class CmsHandler extends Handler{

	@Override
	public void handle(String target, HttpServletRequest request, HttpServletResponse response, boolean[] isHandled) {
		int index=target.lastIndexOf(".html");
		int staticIndex=target.lastIndexOf(".");
		
		//逻辑，首先如果是html的话，全部转发给cms处理
		//如果是其他静态文件的话，分为两种，1 后台管理的静态资源，2 前台的静态资源
		//如果是后台的静态资源，那么全部放行，如果是前台的静态资源，那么转发给cms/static
		//TODO 目前下面方式遇到一些问题，如果是后台的访问的话，有时候不一定REFERER含有/admin，所以某些静态资源无法访问
		
		//最终可以拆分成两个项目来解决,暂时通过 REFERER是否有/admin来判断
		
		String REFERER=request.getHeader("REFERER");
		
		if(index>-1) {
			request.setAttribute(ConstConfig.CMS_TARGET, target);
			next.handle("/cms", request, response, isHandled);
		}else if(staticIndex>-1&&(!REFERER.contains("/admin"))){
			request.setAttribute(ConstConfig.CMS_TARGET, target);
			next.handle("/cms/static", request, response, isHandled);
		}else {
			next.handle(target, request, response, isHandled);
		}
	}

}
